	package br.com.acs.CameraIP.util;

import java.io.File;
import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import br.com.acs.CameraIP.model.Camera;
import br.com.acs.CameraIP.model.Imagem;

	public class ImagemUtil {


		public List<Imagem> getImagens(String path) {

			File diretorio = new File(path);
			File[] arquivos = diretorio.listFiles();
			List<Imagem> listaImagens = new ArrayList<Imagem>();
			String nomeVideo = new String();
			
			Camera cam = new Camera();
			cam = (Camera) FacesUtil.getSessionAttribute("cameraAtiva");
			
			if (arquivos != null) {
				int length = arquivos.length;

				for (int i = 0; i < length; ++i) {
					File f = arquivos[i];

					if (f.isFile()) {
						
						Imagem imagem = new Imagem();

						DateFormat formatData = new SimpleDateFormat("dd/MM/yyyy");
						String data = formatData.format(new Date(f.lastModified()));

						DateFormat formatHora = new SimpleDateFormat("HH:mm:ss");
						String hora = formatHora.format(new Date(f.lastModified()));

						imagem.setDirArq(diretorio.getName());
						imagem.setPathArq(f.getAbsoluteFile().getPath());
						imagem.setNomeArq(f.getName());
						imagem.setDataArq(data);
						imagem.setHoraArq(hora);
						imagem.setTipoArq(getFileExtension(f));
						//imagem.setUrlArq("../imagens/".concat(cam.getUsuarioFtp()).concat("/").concat(cam.getDirFtp()).concat("/").concat(f.getName()));
						//imagem.setFlashVarArq("\'config={\"clip\":\"../imagens/".concat(cam.getUsuarioFtp()).concat("/").concat(cam.getDirFtp()).concat("/").concat(f.getName()).concat("\"}\'"));
						
						
						//Desenv
						imagem.setUrlArq("../imagens/".concat(cam.getUsuarioFtp()).concat("/").concat(diretorio.getName()).concat("/").concat(f.getName()));
						
						nomeVideo = "videoclip_ch1_".concat(imagem.getNomeArq().substring(9,24)).concat(".mp4");
						
						imagem.setFlashVarArq("\'config={\"clip\":\"../imagens/".concat(cam.getUsuarioFtp()).concat("/").concat(diretorio.getName()).concat("/").concat(nomeVideo).concat("\"}\'"));
						
						
						if (imagem.getTipoArq().equalsIgnoreCase("jpg"))
									listaImagens.add(imagem);
					}
				}
				
				ComparadorImagens comparacao = new ComparadorImagens();
		        Collections.sort(listaImagens, comparacao);
			
			return listaImagens;
			}
			return null;
		}
		
		private static String getFileExtension(File file) {
			String fileName = file.getName();
			if (fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0)
				return fileName.substring(fileName.lastIndexOf(".") + 1);
			else
				return "";
		}
		
		public static class  ComparadorImagens implements Comparator<Imagem> {
	        public int compare(Imagem objetoParaComparar, Imagem objetoAserComparado){
	            return objetoAserComparado.getDataArq().concat(objetoAserComparado.getHoraArq()).compareTo(objetoParaComparar.getDataArq().concat(objetoParaComparar.getHoraArq()));
	        }
	    }     

	}


